--[[
	response操作封装，所有header操作需要在调用ngx.say前调用，否则不生效
]]

local json = require("mvc.ext.dkjson")


local _M = {
	
};

--[[
	添加Cookie
	@cookie cookie对象
]]
function _M.add_cookie(cookie)
	ngx.header["Set-Cookie"] = cookie:to_cookie_string();
	return _M;
end

--[[
	设置ContentType
]]
function _M.set_content_type(content_type)
	ngx.header['Content-Type'] = content_type;
	return _M;
end

--[[
	添加头信息
	@key 头名称
	@value 值
]]
function _M.add_header(key, value)
	ngx.header[key] = value;
	return _M;
end

--[[
	添加数字类型的头信息
	@key 头名称
	@value 值
]]
function _M.add_int_header(key, value)
	ngx.header[key] = tonumber(value);
	return _M;
end

--[[
	添加日期类型的头信息
	@key 头名称
	@value 值
]]
function _M.add_date_header(key, value)
	
	return _M;
end

--[[
	批量添加头信息
	@headers table类型的头键值对
]]
function _M.add_headers(headers)
	for i, t in pairs(headers) do
		ngx.header[i] = t;
	end
	return _M;
end

--[[
	重定向
	@url
]]
function _M.redirect(url)
	ngx.redirect(url);
end

--[[
	向客户端输出内容
]]
function _M.out(obj)
	ngx.say(obj);
end

--[[
	向客户端打印json内容
]]
function _M.out_json(obj)
	_M.set_content_type("application/json;charset=UTF-8");
	local str = json.encode(obj, { indent = true });
	_M.out(str);
end

return _M;

